
package com.jc.platform.coursemanage.vo;

import java.util.Date;


import com.jc.platform.common.supers.AbstractVO;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import com.jc.platform.coursemanage.group.Update;
import com.jc.platform.coursemanage.group.Insert;
import javax.validation.constraints.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.math.*;
import javax.validation.Valid;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jc.platform.common.utils.DateUtil;


/**
 * ClassName CourseVO.java
 * Description 
 *
 * @author Wen
 * @version 7.0
 * @date 
 */
@ApiModel(value = "CourseVO", description = "")
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode(of = { "id" }, callSuper = false)
public class CourseVO extends AbstractVO implements Serializable
{
    private static final long serialVersionUID = 1L;

    /**
     * 实体编码
     */
    public static final String IS_ENTITY_CODE = "61849da3172e488e9be1faa3b165a37d";

    /**
     * 主键
     */
    @ExcelIgnore
    @NotNull(groups = Update.class, message = "主键不能为Null")
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * 课程名
     */
    @ExcelProperty(value = "课程名")
    @NotNull(message = "课程名不可以为空")
    @ApiModelProperty(value = "课程名")
    private String courseName;
    /**
     * 所属专业
     */
    @ExcelProperty(value = "所属专业")
    @NotNull(message = "所属专业不可以为空")
    @ApiModelProperty(value = "所属专业")
    private Long majorId;
    /**
     * 教师
     */
    @ExcelProperty(value = "教师")
    @NotNull(message = "教师不可以为空")
    @ApiModelProperty(value = "教师")
    private Long instructorId;
    /**
     * 课程描述
     */
    @ExcelProperty(value = "课程描述")
    @ApiModelProperty(value = "课程描述")
    private String description;
    /**
     * 学分
     */
    @ExcelProperty(value = "学分")
    @NotNull(message = "学分不可以为空")
    @ApiModelProperty(value = "学分")
    private Integer credit;
    /**
     * 起始日期
     */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(timezone = "GMT+8", pattern = DateUtil.PATTERN_DATE)
    @ExcelProperty(value = "起始日期")
    @NotNull(message = "起始日期不可以为空")
    @ApiModelProperty(value = "起始日期")
    private Date startDate;
    /**
     * 结束日期
     */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(timezone = "GMT+8", pattern = DateUtil.PATTERN_DATE)
    @ExcelProperty(value = "结束日期")
    @NotNull(message = "结束日期不可以为空")
    @ApiModelProperty(value = "结束日期")
    private Date endDate;
    /**
     * 期末考试时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @ExcelProperty(value = "期末考试时间")
    @ApiModelProperty(value = "期末考试时间")
    private Date finalDate;
    /**
     * 创建人ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "创建人ID")
    private Long createId;
    /**
     * 创建人
     */
    @ExcelIgnore
    @ApiModelProperty(value = "创建人")
    private String createName;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @ExcelIgnore
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 修改人ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "修改人ID")
    private Long modifyId;
    /**
     * 修改人
     */
    @ExcelIgnore
    @ApiModelProperty(value = "修改人")
    private String modifyName;
    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd'T'HH:mm:ss")
    @ExcelIgnore
    @ApiModelProperty(value = "修改时间")
    private Date modifyTime;
    /**
     * 扩展字段
     */
    @ExcelIgnore
    @ApiModelProperty(value = "扩展字段")
    private String extension;
    /**
     * 租户ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "租户ID")
    private Long tenantId;
    /**
     * 集团ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "集团ID")
    private Long groupId;
    /**
     * 机构ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "机构ID")
    private Long orgId;
    /**
     * 部门ID
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门ID")
    private Long deptId;
    /**
     * 导入数据时集合
     */
    @ExcelIgnore
    @Valid
    List<CourseVO> importExcelList;




}

